package com.hao.tool.web.haotool;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 退费交易信息(来源清分)
 *
 * @author HAO
 * @date 2021-09-12 23:02:53
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "TB_REFUND_INFO", resultMap = "BaseResultMap")
public class RefundInfo  implements Serializable {

    private static final long serialVersionUID = 1L;

    public RefundInfo() {
        super();
    }

    /**
     * 系统主键
     */
    @TableId("ID")
    private String id;

    /**
     * 通行省中心 Id，表示退费是由那个省中心产生的。
     */
    @TableField("SER_PROVINCE_ID")
    private String serProvinceId;

    /**
     * 结案时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("CLOSE_TIME")
    private Date closeTime;

    /**
     * 发行服务机构ID/出口省中心ID
     */
    @TableField("AGENCY_ID")
    private String agencyId;

    /**
     * 流水来源1-部中心 2-省内退费平台
     */
    @TableField("EEXIT_FROM")
    private Long eexitFrom;

    /**
     * 是否清分1-已清分2-未清分
     */
    @TableField("HAS_CLEAR")
    private String hasClear;

    /**
     * 交易类型01-ETC交易02-现金交易
     */
    @TableField("TRANSACTION_TYPE")
    private String transactionType;

    /**
     * 跨省情况01-本省交易02-跨省交易
     */
    @TableField("PROVINCE_TYPE")
    private String provinceType;

    /**
     * 退款流水号
     */
    @TableField("UN_PAY_ID")
    private String unPayId;

    /**
     * 原支付流水号
     */
    @TableField("PAY_ID")
    private String payId;

    /**
     * 退款申请时间发行方申请退款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("APPLY_TIME")
    private Date applyTime;

    /**
     * 退款金额单位：分
     */
    @TableField("FEE")
    private Long fee;

    /**
     * 退款标题用于描述退款原因
     * 不超过100字符
     */
    @TableField("TITLE")
    private String title;

    /**
     * 退费工单编号投诉，业务协调工单编号，不超过50字符
     */
    @TableField("ORDER_ID")
    private String orderId;

    /**
     * 卡网络编号+CPU卡内部编号transactionType取值01必填
     */
    @TableField("CARD_ID")
    private String cardId;

    /**
     * ETC卡类别1-储值卡2-记账卡
     */
    @TableField("ETC_CARD_TYPE")
    private Long etcCardType;

    /**
     * 16位电子标签编号transactionType取值01且单片式obu必填
     */
    @TableField("OBU_ID")
    private String obuId;

    /**
     * OBU单/双片标识
     */
    @TableField("OBU_SIGN")
    private Long obuSign;

    /**
     * 车牌编号transactionType取值01必填
     */
    @TableField("PLATE_NUM")
    private String plateNum;

    /**
     * 车牌颜色 transactionType取值01必填
     */
    @TableField("PLATE_COLOR")
    private Long plateColor;

    /**
     * 收费车型transactionType取值01必填
     */
    @TableField("VEHICLE_TYPE")
    private Long vehicleType;

    /**
     * 服务类型1-高速2-停车场3-加油站4-服务区5-市政服务
     */
    @TableField("SERVICE_TYPE")
    private Long serviceType;

    /**
     * 入口收费站名称
     */
    @TableField("EN_TOLL_STATION_NAME")
    private String enTollStationName;

    /**
     * 出口收费站名称
     */
    @TableField("EX_TOLL_STATION_NAME")
    private String exTollStationName;

    /**
     * 出口交易时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("EX_TIME")
    private Date exTime;

    /**
     * 机构号
     */
    @TableField("ORG_ID")
    private String orgId;

    /**
     * 原始流水金额非现金流水必填
     */
    @TableField("ORIGINAL_FEE")
    private Long originalFee;

    /**
     * 退费处理机构号
     */
    @TableField("ORG_ID_REFUND")
    private String orgIdRefund;

    /**
     * 退费状态1-退款成功2-退款失败
     */
    @TableField("STATUS")
    private Long status;

    /**
     * 退费时间退款成功必填
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("OP_TIME")
    private Date opTime;

    /**
     * 退费结果描述 退费成功/失败信息
     */
    @TableField("MSG_OFF")
    private String msgOff;

    /**
     * 退费支付方式01- 储值卡补卡额04-银行原路退回05-银行转账（非原扣款账户）06-支付宝07-微信08-现金09-其它（货车帮等）10-客户放弃
     */
    @TableField("REFUND_PAY_WAY")
    private String refundPayWay;

    /**
     * 退费银行名 填入规则根据refundPayWay决定，05-填入转入银行名称，其他取值不填
     */
    @TableField("BANK_NAME")
    private String bankName;

    /**
     * 线下退费账号
     */
    @TableField("ACCOUNT")
    private String account;

    /**
     * 线下退费交易流水号
     */
    @TableField("TRANS_NUM")
    private String transNum;

    /**
     * 系统插入时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("SYS_INSERT_TIME")
    private Date sysInsertTime;

    /**
     * 系统更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("SYS_UPDATE_TIME")
    private Date sysUpdateTime;

    /**
     * 同步批次号
     */
    @TableField("SYNC_VERSION")
    private String syncVersion;

}
